<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 5.1.6 or newer
 *
 * @package		CodeIgniter
 * @author		ExpressionEngine Dev Team
 * @copyright	Copyright (c) 2008 - 2011, EllisLab, Inc.
 * @license		http://codeigniter.com/user_guide/license.html
 * @link		http://codeigniter.com
 * @since		Version 1.0
 * @filesource
 */

// ------------------------------------------------------------------------

/**
 * CodeIgniter Application Controller Class
 *
 * This class object is the super class that every library in
 * CodeIgniter will be assigned to.
 *
 * @package		CodeIgniter
 * @subpackage	Libraries
 * @category	Libraries
 * @author		ExpressionEngine Dev Team
 * @link		http://codeigniter.com/user_guide/general/controllers.html
 */
class CI_Controller {

	private static $instance;

	/**
	 * Constructor
	 */
	public function __construct()
	{
		self::$instance =& $this;
		
		// Assign all the class objects that were instantiated by the
		// bootstrap file (CodeIgniter.php) to local class variables
		// so that CI can run as one big super object.
		foreach (is_loaded() as $var => $class)
		{
			$this->$var =& load_class($class);
		}

		$this->load =& load_class('Loader', 'core');

		$this->load->initialize();
		
		log_message('debug', "Controller Class Initialized");
	}

	public static function &get_instance()
	{
		return self::$instance;
	}



	public function encode_id($id) { 
	    $id = $id*1;
	    $id = dechex($id + $this->config->item('encryption_key')); 
	    $id = str_replace(1,'I',$id); 
	    $id = str_replace(2,'W',$id); 
	    $id = str_replace(3,'O',$id); 
	    $id = str_replace(4,'U',$id); 
	    $id = str_replace(5,'Z',$id); 
	    return strtoupper($id); 
	}
	public function decode_id($encode) {
		$encode = str_replace('I','1',$encode); 
	    $encode = str_replace('W','2',$encode); 
	    $encode = str_replace('O','3',$encode); 
	    $encode = str_replace('U','4',$encode); 
	    $encode = str_replace('Z','5',$encode); 
	    $id=hexdec ($encode);
	    $id=$id*1-$this->config->item('encryption_key')*1;
	    return $id;
	}


	public function convertVn($str)
	{
		$str = preg_replace("/(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)/", 'a', $str);
		$str = preg_replace("/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/", 'e', $str);
		$str = preg_replace("/(ì|í|ị|ỉ|ĩ)/", 'i', $str);
		$str = preg_replace("/(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)/", 'o', $str);
		$str = preg_replace("/(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/", 'u', $str);
		$str = preg_replace("/(ỳ|ý|ỵ|ỷ|ỹ)/", 'y', $str);
		$str = preg_replace("/(đ)/", 'd', $str);
		$str = preg_replace("/(À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ)/", 'A', $str);
		$str = preg_replace("/(È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ)/", 'E', $str);
		$str = preg_replace("/(Ì|Í|Ị|Ỉ|Ĩ)/", 'I', $str);
		$str = preg_replace("/(Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ)/", 'O', $str);
		$str = preg_replace("/(Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ)/", 'U', $str);
		$str = preg_replace("/(Ỳ|Ý|Ỵ|Ỷ|Ỹ)/", 'Y', $str);
		$str = preg_replace("/(Đ)/", 'D', $str);
		$str = preg_replace("/(&)/", ' ', $str);
		$str = str_replace(" ", "-", str_replace("&*#39;","",$str));
		return $str;
	}

	/**
	* loai bo khoang trong trong mang string
	*/
	public function getBase64Code($array,$pos) {
		$i=0;
		while($i<count($array)) {
			$array[$i][$pos]=$this->encode_id($array[$i][$pos]);
			$i++;
		}
		return $array;

	}

	public function convertStringUrl($array,$elem,$elemnew) {
		$i=0;
		while($i<count($array)) {
			$array[$i][$elemnew]=$this->convertVn($array[$i][$elem]);
			$i++;
		}
		return $array;
	}
}
// END Controller class

/* End of file Controller.php */
/* Location: ./system/core/Controller.php */